package com.wang.tool.hook;

import com.wang.tool.executor.ExecutorFactory;
import com.wang.tool.okhttp.HttpTemplate;
import org.springframework.context.annotation.Import;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 开启程序钩子配置
 *
 * @Author wangshaopeng
 * @Date 2022/5/10
 * 可实现资源/环境统一管理
 * 1.线程池统一管理
 * 2.程序环境管理
 * 3.资源池统一管理(http,oss)
 * @see SpringContextUtil
 * @see ExecutorFactory
 * @see HttpTemplate
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Import({AppHookRegistrar.class})
public @interface EnableAppHook {

    /**
     * 钩子
     */
    Class<? extends AppHook>[] hooks() default {SpringContextUtil.class};
}
